// 在中间件中，需要监听req对象的data事件，来获取客户端发送到服务器的数据。
// 如果数据量比较大，无法一次性发送完毕，则客户端会把数据切割后，分批发送到服务器。
// 所以data事件可能会触发多次，每一次触发data事件时，
// 获取到数据只是完整数据的一部分，需要手动对接收到的数据进行拼接。
// node内置querystring模块(弃用)，专门处理查询字符串。可安装其他的比如querystringify
const qs=require('querystring')
const bodyParser=(req,res,next)=>{
    let str=''
    // 监听data事件
    req.on('data',(chunk)=>{
        str+=chunk
    })
    // 请求体接受完毕后
    req.on('end',()=>{
        const body=qs.parse(str)
        req.body=body
        next()
    })
}
module.exports=bodyParser